The present invention relates generally to the field of network computing. In particular, the present invention relates to network computing which provides a mobile computing environment.
Historically, computers were large and expensive processors that had to be located at special premises and that few could afford to own and maintain. To benefit from the then powerful computing and processing capabilities of a computer of the past, a user had to access the premises where the computer was located and take multiple steps and procedures that were unique to the computer in order to operate the computer.
Currently, through technological evolution, one of the successors of these large and expensive computers is a small and affordable notebook computer. More importantly, however, such a notebook computer may provide computing power with the ability to execute complex applications and complex formulae involving large numbers at high processing speeds. Such an evolution in computing technology is made possible partially because of the advent of integrated circuit technology that enables the integration of electronic circuits into small electronic devices. The advancement of technology and related skills in manufacturing and software programming and/or engineering also contributes to this evolution.
The evolution of computer technology also significantly impacts the evolution of network technology. Modern network technology allows users who are connected to a network to share resources that are connected to the network. Currently, networks can either cover a small geographical area, such as a local area network (LAN), or a wide geographical area, such as the coverage provided by the Internet or an Internet. Recognizing the market potential of coupling modem computing technology that provides for small, portable, and powerful computers, and the wide coverage of the Internet, the computer industry has placed many modem computing products and services of sorts on the computer marketplace.
One example of such products and services currently being commercialized is based on the concept of mobile computing with minimal local storage usage. This means that modem mobile computer manufacturers can leverage off the implementation of minimal local storage such as the local hard disk, therefore accentuating the compactness of modem mobile computers. The modem mobile computer can therefore be dedicated to, for example, networking, communications and image processing.
Another example of the products and services currently being commercialized is based on the concept of a xe2x80x9cmobilexe2x80x9d user. The mobile user in one context refers to a computer user who uses a modem mobile computer. In another context, the mobile user refers to a computer user that hops from computer to computer within a xe2x80x9cboundaryxe2x80x9d defined by a network to which the mobile user subscribes or is connectable. The mobile user, hereinafter used in the latter context, thus performs work using whichever computer the mobile user accesses within the network.
When any computer user utilizes a computer, the computer user is basically working on a set or sets of information using the computer""s processor. Generally, the information is found on a local storage device such as the local hard disk or a storage medium such as a Compact Disc Read Only Memory (CD ROM). However, the information may also reside on a remote storage that is accessible through, for example, a network. Irrespective of the storage location, it is a fundamental requirement that the computer provides means of storing and/or retrieving the information. For example, when the mobile user hops from computer to computer, the computer user may either use floppy diskettes, CD ROMs, card memories, or any other form of storage medium for providing the information that the mobile user is dealing with. To minimize the use of such storage media that need to be transported, remote storage may be used. When the mobile user wishes to access a remote storage, the mobile user is required to connect to another computer controlling the remote storage either directly or through a network. Such a network could either cover a small geographical area such as a LAN, or a wide geographical area such as the Internet.
In both examples, there appear to exist advantages to using remote storage for the reasons of either improving the compactness of the modern mobile computer or lessening the need to transport the above mentioned storage media.
Currently, some Internet-based products or services such as Web portals, to which a computer user may subscribe, provide accounts with electronic mailboxes, personal starting Web pages, and file directories. These can be accessed from any computer the subscriber uses as long as a Web Browser application program and an Internet link are available on that computer. The subscriber needs to simply login to the Web portal account and thus is able to use the mailbox or access a file from the file directory that is provided by the account. This is a very useful concept for providing computer users with access to the same information and resources at all times regardless of whether the computer users are at home, in the office, or travelling. This idea is also made possible largely because the concept of remote storage access exists.
However, one shortcoming attendant on a Web portal product or service is that a Web portal account is accessible only through a Web Browser. This means that the Web portal account is distinct from the subscriber""s other network or remote access accounts that may exist at the office, at home, or with any Internet service provider. Typically, only the email component of the Web portal account may be integrated with the subscriber""s other accounts using protocols such as POP3 or IMAP. A practical consequence of this distinction is that a data file residing on one account cannot be opened directly by a program that requires such a data file if the program is installed on another account. Instead, the data file has to be moved manually to the account where the program is installed first.
Another attendant shortcoming is that the subscriber has to work with different environment settings, shortcuts, directory structures, and the like, when the subscriber works on the different accounts from the different computers. Such are components of a computing environment that provides the xe2x80x9clook and feelxe2x80x9d of the user interface, file access, directory access, and execution of application program of a computer.
In an attempt to overcome one or more of the above problems, conventional methods exist in the marketplace. One such conventional method seeks to address the problem of locating files residing on different file directories of different accounts by using file attributes. From the file attributes, it can be determined if for example a requested file is located on the local storage of the computer or on a remote storage. If the file attribute of a file indicates that the requested file is stored on the remote storage, a file system driver in the operating system of the computer passes control to high level drivers to continue processing the request as an input/output (I/O) request. However, such a conventional method does not address the problem adequately because only remote storage supported by communications protocols congruent with the communications protocols supported by the operating system is accessible. Moreover, such a conventional method does not specifically address the other problems mentioned in the foregoing.
Another conventional method addresses the problem of accessing different resources on the Web through overwriting shared libraries used by application programs on the computer. This however implies that such a conventional method cannot support application programs that utilize static libraries. Hence, the application of such a conventional method is restricted to access of files by application programs that utilize only shared libraries. Moreover, such a conventional method also does not address the problem adequately because there is no provision to access remote storage on a file server. This conventional method also does not specifically address the other problems mentioned in the foregoing.
A further conventional method addresses the problem of accessing files through a distributed server environment by use of a central file management device or system that maintains a virtual file management table for indicating the virtual identification (ID) and the physical location of files. Requests originating from application programs for files are directed from the central file management system to the appropriate server based on the actual physical location of the files. This conventional method however involves additional hardware, software, firmware, and the like for providing the central file management system. This implies additional cost and effort on implementation of such a conventional method, which is not desirable. Also, this conventional method does not specifically address the other problems.
In addition to providing means of connecting a computer to a remote storage, a network may also provide means of sharing out the computation or processing of tasks that are invoked on the computer. Typically, a user invokes tasks on the computer when the user executes an application program on the computer. However, the computer""s local resources may not always match the operational requirements of some application programs. For example, the computer""s Random Access Memory (RAM) size and/or Central Processing Unit (CPU) speed may not be sufficiently large and/or fast enough, respectively. To use any one of those incompatible application programs, the user must then either re-install the application program on a computer with matching local resources or a computer connected to a network that enables distributed processing. That is, a network that allows computation or processing work to be performed by separate computers connected to the network. A typical example of such a network is a client/server LAN that makes use of distributed intelligence to treat both the server and the individual client as intelligent, programmable machines, thus exploiting the full computing power of each.
However, such client/server architectures are typically rigid and therefore the distribution of functionality between the server and the individual client in these architectures is fixed. In the context of a conventional client/server LAN where which individual client is performing front-end processing and which server is performing back-end processing is predetermined, a user who consistently uses a particular client for a running a particular application program may find that the arrangement works well. However, in the context of the same-client/server LAN, a mobile user may find that the arrangement inadvertently perpetuates sub-optimal performance and/or resource utilization. This is because the mobile user may hop from client to client within the client/server LAN, and from each client wishes to use the same application program. The same application program, as can be appreciated, may be suitably executed on one client and not on another client. This is because there are different types of application programs, some of which are based on the xe2x80x9cthin-clientxe2x80x9d model while others are based on the xe2x80x9cfat-clientxe2x80x9d model. A thin-client application program, such as a terminalxe2x80x94or Web-based thin-client application program, is one that is written for use with a client that performs less processing than the corresponding server. A fat-client application program on the other hand is one that is written for use with a client that performs more processing than the corresponding server. Hence, a top-of-the-range computer serving as a client may be under-utilized when executing a thin-client application program while an outmoded computer serving as another client may not have the resources or be able to properly execute a fat-client application program.
Hence, it is clear that the matching of computer resources with the operational requirements of application programs poses a problem, in particular to the mobile user in the context of a conventional network that provides distributed processing. This problem, however, is not addressed by conventional methods.
From the discussion of conventional methods, it is clear that a need exists for an adequate solution to overcoming or at least ameliorating one or more of the disadvantages described in the foregoing.
Various aspects of the invention are directed to ameliorating or overcoming at least one or a combination of the above disadvantages or inadequacies of conventional methods. In particular, it is desirable to provide portable or mobile computing within the context of a network wherein a computing environment may be migrated to any computer that is connectable to the network for providing a user with a consistent computing environment. It is also desirable to provide a consistent computing environment according to a dynamically adaptable communications protocol that allows transparent connectivity to Web resources, file servers and the like. It is further desirable to provide a consistent computing environment wherein the information regarding files stored on remote storage is self-contained within the computer. It is even further desirable to provide a consistent computing environment that enables dynamically-adaptive distributed processing within the network.
In accordance with a first aspect of the invention, there is disclosed a computing system for providing a mobile computing environment for a user, the computing system being connectable to remote storage and having a local computing environment, an operating system, and a local storage, the computing system including: an application program; means for invoking the application program; and means for allocating the execution location of the application program when the application program is invoked, wherein the allocating means is an intermediary between the application program and the operating system.
In accordance with a second aspect of the invention, there is disclosed a computation server for providing a mobile computing environment for a user on a computing system, the computation server being connectable to remote storage and having a local computing environment, an operating system, and a local storage, the computation server including: means for communicating information of resources on the computation server for allocation of execution location of an application program resident on the computing system; and means for monitoring and coordinating the execution of the application program when allocated to the computation server.
In accordance with a third aspect of the invention, there is disclosed a method for providing a mobile computing environment to a computing system for a user, the computing system being connectable to remote storage and having a local computing environment, an operating system, and a local storage, the method including the steps of: providing an application program; invoking the application program; and allocating the execution location of the application program when the application program is invoked by including an intermediary between the application program and the operating system.
In accordance with a fourth aspect of the invention, there is disclosed a method for providing a mobile computing environment on a computing system for a user using a computation server, the computation server being connectable to remote storage and having a local computing environment, an operating system, and a local storage, the computation server including: communicating information of resources on the computation server for allocation of execution location of an application program resident on the computing system; and monitoring and co-ordinating the execution of the application program when allocated to the computation server.
In accordance with a fifth aspect of he invention, there is disclosed a computer program product for providing a mobile computing environment for a user, including a computer usable medium having computer readable programs code means embodied in the medium for causing the mobile computing environment to be provided to a computing system, the computing system being connectable to remote storage and having; a local computing environment, an operating system, and a local storage, the computer program having computer readable program code means for providing an application program; computer readable program code means for invoking the application program; and computer readable program code means for allocating the execution location of the application program when the application program is invoked by including an intermediary between the application program and the operating system.
In accordance with a sixth aspect of the invention, there is disclosed a computer program product for providing a mobile computing environment for a user on a computing system, including: a computer usable machine having computer readable program code means embodied in the medium for causing the mobile computing environment to be provided using a computation server, the computation server being connectable to remote storage and having a local computing environment, an operating system, and a local storage, the computer program product having: computer readable program code means for communicating information of resources on the computation server for allocation of execution location of an application program resident on the computing system; and computer readable a program code means for monitoring and coordinating the execution of the application program when allocated to the computation server.